package com.lyncs.ods.modules.goods.service;

import com.lyncs.ods.common.api.CommonPage;
import com.lyncs.ods.modules.goods.model.SkuDetail;
import com.lyncs.ods.modules.goods.model.SkuDetailInfo;
import com.lyncs.ods.modules.goods.model.SkuInfo;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * sku信息总表 服务类
 * </p>
 *
 * @author alex
 * @since 2022-02-15
 */
public interface SkuInfoService extends IService<SkuInfo> {


    /**
     * 分页查询sku详情（含汇率转换）
     *
     * @param spuId     spuId
     * @param companyId companyId
     * @param keyword   keyword
     * @param currency  currency（可为空）
     * @param attrs     属性map（可为空）
     * @param page      page
     * @param pageSize  pageSize
     * @param source
     * @return sku详情
     */
    CommonPage<SkuDetailInfo> getSkuDetailInfos(Long spuId, @NotNull Long companyId, String keyword, String currency, Map<Long, String> attrs, Integer page, Integer pageSize, String source);

    Map<Long, Map<String, String>> getSkuAttrs(List<SkuDetail> skuDetails);
}
